As the number of devices accessing the World Wide Web (referred to herein as “Web”) proliferates, Web content and applications need to be tailored to suit the characteristics of each device. These devices can include personal digital assistants, wireless communication devices, desktop or laptop computers, or any combination of these items. Typically these devices include a user agent that is responsible for interfacing between the device user and the Internet.
Current Web implementations typically involve developing, updating, and maintaining a specialized set of variants of Web content and its associated presentations—one for each possible device type. The content provider typically must also develop and maintain suitable transformation processors that can transform generic content (e.g., device independent) from one form to another.
Existing and emerging Web technologies support these capabilities through client side, server side, or intermediary based architectures. The latter of these involve conveying, to the server or intermediate proxy, requirements regarding the capabilities of the rendering environment along with the Web request that was made by the user. The requirements are interpreted and the content appropriate to the requesting device is selected or generated.
The final presentation is affected by a number of factors. The ability of the content provider to understand and interpret the various device characteristics and be able to tailor the content suitably is one such factor. Additionally, the final presentation is affected by the user's level of trust by various content providers, transcoding proxies, or other stakeholders regarding the use of the capabilities requirements made along with the request. The extent of trust on the part of content providers regarding the potential manipulation/transformation by intermediate proxies that is likely to occur on the return path of the response also affects the final presentation.
There are several disadvantages to the above factors. For example even if the intermediate proxies were able to provide transcoding services, it may not always be possible for the user to obtain the most suitable transformation from a specific proxy along its path. Additionally, the user may not have control over who is receiving, storing, or interpreting any part of the user's request or response. Security mechanisms, such as encryption of the request and content, may impact performance. Without trust and relationships in place, privacy mechanisms such as P3P would be difficult to implement along a proxy chain that involves transcoding. There is a resulting need to be able to customize web content reliably while providing a secure path for the content.